#include <iostream>
#include<stack>
using namespace std;

const int N = 110;
bool tr[N];
int main()
{
	string s;
	cin >> s;
	int size = s.size();
	stack<int> st;
	for(int i = 0; i < size; i++)
	{
		if(s[i] == '[' || s[i] == '(')
		    st.push(i);
		else
		{
			if(st.empty())
			    continue;
			char ch = s[st.top()];
		    if((s[i] == ']'&& ch == '[') || (s[i] == ')'&& ch == '('))
		    {
			    tr[i]  = true;
			    tr[st.top()] = true;
			    st.pop();
		    } 
	    }
	 }
	 string tmp;
	 for(int i = 0; i < size; i++)
	{
	    if(tr[i] == true)
		     tmp += s[i];
		else
		{
			if(s[i] == '[')
			{
				tmp += s[i];
				tmp += ']';
			}
			else if(s[i] == '(')
			{
				tmp += s[i];
				tmp += ')';
			}
			else if(s[i] == ']')
			{
				tmp += '[';
				tmp += s[i];
			}
			else if(s[i] == ')')
			{
				tmp += '(';
				tmp += s[i];
			}
		}
	}
	cout << tmp << endl; 
	return 0;
}
